﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HHPS.CreditEducation.DataProvider;
using HHPS.CreditEducation.Frameworks.Constants;

namespace HHPS.CreditEducation.Business
{
    public class ManagementBusiness
    {
        private readonly CreditEducationDbEntities _dataContex;

        public ManagementBusiness()
        {
            _dataContex = new CreditEducationDbEntities();
        }

        public List<Major> GetMajors()
        {
            return _dataContex.Majors.ToList();
        }

        public bool AddNewStudyPlanValidate(StudyPlan plan, out string message)
        {
            if (string.IsNullOrEmpty(plan.Name))
            {
                message = string.Format(ConstantMessages.RequireFieldIsBlank, "tiêu đề cho Kế hoạch học tập");
                return false;
            }
            if (plan.Name.Trim().Length > 15)
            {
                message = string.Format(ConstantMessages.FieldDataOverMaxLength, "Kế hoạch học tập", 15);
                return false;
            }
            if (string.IsNullOrEmpty(plan.Detail))
            {
                message = string.Format(ConstantMessages.RequireFieldIsBlank, "mô tả");
                return false;
            }
            if (plan.Name.Trim().Length > 100)
            {
                message = string.Format(ConstantMessages.FieldDataOverMaxLength, "Mô tả", 100);
                return false;
            }
            if (_dataContex.StudyPlans.Any(s=>s.Name.ToLower()==plan.Name.ToLower()))
            {
                message = string.Format(ConstantMessages.ItemIsExisted, "Kế hoạch học tập");
                return false;
            }
            //Maybe it will not validate start date
            message = string.Empty;
            return true;
        }

        public void AddNewStudyPlan(StudyPlan plan)
        {
            _dataContex.StudyPlans.AddObject(plan);
            _dataContex.SaveChanges();
        }
    }
}
